Add a few missing gtk_widget_unregister_window calls
authorAlexander Larsson <alexl@redhat.com>
Mon, 18 Feb 2013 08:35:58 +0000 (09:35 +0100)
committerAlexander Larsson <alexl@redhat.com>
Mon, 18 Feb 2013 08:35:58 +0000 (09:35 +0100)
This was causing warnings on widget unparent like:

Gdk-CRITICAL **: gdk_window_has_native: assertion `GDK_IS_WINDOW (window)' failed

Becasue the window was not properly removed from the lists on unrealize.

gtk/gtktexthandle.c
gtk/gtktreeview.c

index 97449b485be348056c7a0005cda8ca1934c638f3..8298cdf941fb873a9b63b08e40b0c6c9ccbd6eb4 100644 (file)
@@ -369,10 +369,18 @@ gtk_text_handle_finalize (GObject *object)
     g_object_unref (priv->relative_to);
 
   if (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window)
-    gdk_window_destroy (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window);
+    {
+      gtk_widget_unregister_window (priv->parent,
+                                   priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window);
+      gdk_window_destroy (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window);
+    }
 
   if (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window)
-    gdk_window_destroy (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window);
+    {
+      gtk_widget_unregister_window (priv->parent,
+                                   priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window);
+      gdk_window_destroy (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window);
+    }
 
   if (g_signal_handler_is_connected (priv->parent, priv->draw_signal_id))
     g_signal_handler_disconnect (priv->parent, priv->draw_signal_id);
@@ -527,7 +535,11 @@ _gtk_text_handle_set_relative_to (GtkTextHandle *handle,
 
   if (priv->relative_to)
     {
+      gtk_widget_unregister_window (priv->parent,
+                                   priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window);
       gdk_window_destroy (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window);
+      gtk_widget_unregister_window (priv->parent,
+                                   priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window);
       gdk_window_destroy (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window);
       g_object_unref (priv->relative_to);
     }
index 34898aba622c8cc8c5910a59089dcf1792742104..af7b8a0888fd2c1dcb77589c0fd3584acef45ced 100644 (file)
@@ -3347,6 +3347,7 @@ gtk_tree_view_button_release_drag_column (GtkWidget      *widget,
                                         tree_view->priv->cur_reorder->left_column);
     }
   tree_view->priv->drag_column = NULL;
+  gtk_widget_unregister_window (widget, tree_view->priv->drag_window);
   gdk_window_destroy (tree_view->priv->drag_window);
   tree_view->priv->drag_window = NULL;